06 Para saber mais: strictNullChecks, exemplo 1

Próxima Atividade
  • Mudar o player
  • Sugerir melhoria

O compilador do TypeScript possui uma série de configurações e uma delas é a strictNullChecks. Neste modo, null e undefined não fazem parte do domínio dos tipos e só podem ser atribuídos a eles mesmos. Com a exceção de undefined que pode ser atribuído a void. Isso pode ser interessante para evitarmos valores nulos e indefinidos em nosso projeto.

Que tal vermos mais um exemplo no qual ele pode nos ajudar a detectar erros em nosso código?

Vamos buscar em um HTML hipotético um elemento com ID cartao_1e a partir dele acessar seu elemento pai através de parentNode:

const elCartao: HTMLDivElement = <HTMLDivElement> document.querySelector('#cartao_1');
let elPai = elCartao.parentElement;

Excelente. Mas o mesmo código não compilará com strictNullChecks com a seguinte alteração:

const elCartao: HTMLDivElement = <HTMLDivElement> document.querySelector('#cartao_1');
let elPaiDoPai = elCartao.parentElement.parentElement; // [ts] Object is possibly 'null'

Veja que o aviso do compilador TypeScript faz todo sentido, porque pode ser que o elemento pai do pai do elemento elCartao não exista e, se não existir, o valor de parentNode será null.

Dessa forma, o programador terá que lidar antecipadamente com essa situação em seu código:

const elCartao: HTMLDivElement = <HTMLDivElement> document.querySelector('#cartao_1');
let elPaiDoPai;
if(elCartao.parentElement) {
    elPaiDoPai = elCartao.parentElement.parentElement;
}
console.log(elPaiDoPai);
Tirar dúvida Próxima Atividade
ícone TypeScript parte 2: Mais técnicas e boas práticas

TypeScript parte 2: Mais técnicas e boas práticas

100%
Aula02 de 05

Lapidando nosso código

Atividades 6 de 13

  • 01 Propriedades readonly 04min
  • 02 Sobre design de classe
  • 03 Parâmetros opcionais 07min
  • 04 Sobre parâmetros opcionais
  • 05 Ativando strictNullChecks 09min
  • 06 Para saber mais: strictNullChecks, exemplo 1
  • 07 Para saber mais: strictNullChecks, exemplo 2
  • 08 Para saber mais: o tipo never
  • 09 Trabalhando com Enuns 08min
  • 10 Sobre o valor da enum
  • 11 Para saber mais: um detalhe importante sobre enum
  • 12 Revisão 03min
  • 13 Consolidando seus conhecimentos

Aulas

Outros Links

Fórum Trocar Curso
Gravatar de Marcos Katsumi Kay

Marcos Katsumi Kay 34.0k xp

Logo da Alura